1. Field of the Invention
The present invention relates to the field of networking. More specifically, the present invention relates to methods and systems associated with detecting the proximity of IP (Internet Protocol) addresses, and their applications to locating peer providers of resources.
2. Background Information
Recent advances in broadband technology are prompting a shift from the established client-server model of the Word Wide Web to a paradigm in which end-user machines can interact directly with each other. In this new model, called peer-to-peer computing, interactions between users are no longer constrained to go through a centralized server, but can take place directly between the end-user machines themselves.
Interactions that are better carried out in a peer-to-peer fashion include the transfer of large volumes of data (such as images, music files, or video clips) or highly volatile information (such as documents being edited by several people at once), and distributed applications that run on multiple end-user machines (such as real-time distributed games). Peer-to-peer computing enables three novel aspects that are not supported by the World Wide Web:                Frictionless publishing of content. In a peer-to-peer system, every peer machine is both a consumer and a publisher of information. Publishing information in such a system can be as easy as creating a new file.        Low barrier to revision and synchronization. Published files can be edited and updated by their author or any person having write permission on the file, either on the local machine or remotely.        Active role of peer machines. While on the World Wide Web user machines are mainly passive participants, in a peer-to-peer environment those machines can become an active part of distributed applications that span many peers. For instance, any participant machine that has a cached copy of a particular document can supply that document in lieu of the publisher.        
One of the most promising benefits of the peer-to-peer model is the ability to seamlessly “cache” resources on multiple machines, both to provide robustness against one particular source of content going off-line, and to maximize the download performance by transparently selecting the fastest and closest possible source(s) of a download and by striping across multiple “equivalent” sources, i.e., downloading multiple fragments (or stripes) of the same file from several sources at once.
Thus, one of the problems faced by such peer-to-peer infrastructure is to be able to find the sources of a given content that are the “closest” to a given target in terms of Internet topology, in order to maximize bandwidth and minimize latency. This contrasts with the vast majority of services based on the client-server model, or even peer-to-peer services like Napster that do not keep track of equivalent copies of resources, where the problem is to find the best route between two fixed locations (the server and the client). In the present case where a multiplicity of sources of identical content can be chosen from, the question of interest is to find the best source or sources, rather than the best route. Thus, a need exists to solve the two related problems of: (i) determining the “proximity” in terms of Internet topology between any two given IP addresses; and (ii) determining a set of most proximal sources to a given target, in terms of network topology.
The difficulty of the problem stems from the fact that it is in general not possible to have exact knowledge of the network topology, in particular of the topology of the network below the level of Autonomous Systems (ASs). Thus, an approximate method is needed that is both fast and, in most cases, accurate enough, to solve the two problems mentioned above.
A related, but different, problem is solved by the Border Gateway Protocol (BGP), which is used by routers to compute the best route between two published networks. Unfortunately, BGP alone is not efficient for determining the proximity of any two arbitrary nodes. Some of the limitations of BGP are the following:                BGP route determination between two arbitrary addresses requires a number of BGP feeds from various locations to accurately compute the hops between the two networks involved.        BGP contains no information on the internal structure of networks, only the links between them, that is, BGP only provides information between the “edges” of public networks.        BGP information is expensive in terms of resources to gather and process.        